/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.core.service;

import info.peigen.hotpot.business.customer.core.repository.service.PartnerRepository;
import info.peigen.hotpot.business.customer.core.service.processor.partner.*;
import info.peigen.hotpot.business.customer.core.service.processor.partner.active.ActivePartnerByLockProcessor;
import info.peigen.hotpot.business.customer.core.service.processor.partner.active.ActivePartnerProcessor;
import info.peigen.hotpot.common.service.base.processor.AbstractProcessorService;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import org.noear.solon.annotation.Inject;


/**
 * <b>(AbstractPartnerService)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2022/5/26
 */
@SuppressWarnings("ALL")
@FieldDefaults(level = AccessLevel.PROTECTED)
public class AbstractPartnerService extends AbstractProcessorService {
    @Inject
    PartnerRepository partnerRepository;

    // Active Processors
    @Inject
    ActivePartnerProcessor       activePartnerProcessor;
    @Inject
    ActivePartnerByLockProcessor activePartnerByLockProcessor;

    // Business Processors
    @Inject
    PartnerCreateProcessor                    partnerCreateProcessor;
    @Inject
    PartnerCreateSelfAccountProcessor         partnerCreateSelfAccountProcessor;
    @Inject
    PartnerCreateIntermediateAccountProcessor partnerCreateIntermediateAccountProcessor;
    @Inject
    PartnerApplyPermissionProcessor           partnerApplyPermissionProcessor;
    @Inject
    PartnerApplyTechProcessor                 partnerApplyTechProcessor;

    // Store Processors
    @Inject
    StorePartnerProcessor storePartnerProcessor;

    // Result Processors
    @Inject
    PartnerCreateResultProcessor          partnerCreateResultProcessor;
    @Inject
    PartnerApplyPermissionResultProcessor partnerApplyPermissionResultProcessor;
    @Inject
    PartnerApplyTechResultProcessor       partnerApplyTechResultProcessor;
}